package BaseDeDatos;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import com.example.miscontactos.Entidades.NombreAccion;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.database.Cursor;
import android.util.Log;

public class AccesoABaseDeDatos 
{
	private static final String TAG = "AccionesUtilities";
	
	public static void registrarAccionHistorial(Context con, String contactoId,
			String numeroTel, String email, String userWeb, NombreAccion tipoAccion, String cuerpo)
	{
        AccionHistorial acc = new AccionHistorial();
        acc.colIdContacto = contactoId;
        acc.colNumero = numeroTel;
        acc.colEmail = email;
        acc.colUserWeb = userWeb;
        acc.colTipoAccionId = tipoAccion.getValue();
        acc.colCuerpo = cuerpo;
        try
        {
    	   BaseDeDatosUtilities db = new BaseDeDatosUtilities(con);
           db.AgregarRegistroHistorial(acc);
        }
        catch (Exception e) 
        {
			Log.v(TAG, "Un error ocurrio intentando guardar el registro.");
        }
     
	}
	
	public static void registrarAccionHistorialConFecha(Context con, String contactoId,
			String numeroTel, String email, String userWeb, NombreAccion tipoAccion, String cuerpo, String fecha)
	{
		Date date = new Date();
		try 
		{
			date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(fecha);
		}
		catch (ParseException e1) 
		{
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		
        AccionHistorial acc = new AccionHistorial();
        acc.colIdContacto = contactoId;
        acc.colNumero = numeroTel;
        acc.colEmail = email;
        acc.colFecha = date;
        acc.colUserWeb = userWeb;
        acc.colTipoAccionId = tipoAccion.getValue();
        acc.colCuerpo = cuerpo;
        try
        {
    	   BaseDeDatosUtilities db = new BaseDeDatosUtilities(con);
           db.AgregarRegistroHistorialConFecha(acc);
        }
        catch (Exception e) 
        {
			Log.v(TAG, "Un error ocurrio intentando guardar el registro.");
        }
     
	}
	
	public static Cursor obtenerHistorialCompleto(Context con, String orden)
	{
		Cursor cur = null;
		try
		{		
			BaseDeDatosUtilities db = new BaseDeDatosUtilities(con);
			cur = db.getAllAcciones(orden);
		}
		catch (Exception e) 
        {
			Log.v(TAG, "Un error ocurrio intentando obtener el historial.");
        }

		return cur;
	}
	
	public static Cursor obtenerHistorialFiltrado(Context con, String orden, Boolean filtros[])
	{
		Cursor cur = null;
		try
		{		
			BaseDeDatosUtilities db = new BaseDeDatosUtilities(con);
			cur = db.getAccionesFiltradas(orden, filtros);
		}
		catch (Exception e) 
        {
			Log.v(TAG, "Un error ocurrio intentando obtener el historial.");
        }

		return cur;
	}
	
	public static void borrarAccionHistorial(Context con, int id)
	{
		try
		{		
			BaseDeDatosUtilities db = new BaseDeDatosUtilities(con);
			db.BorrarAccionHistorial(id);
		}
		catch (Exception e) 
        {
			Log.v(TAG, "Un error ocurrio intentando obtener el historial.");
        }
	}
	
	public static Cursor obtenerHistorialPorContactoId(Context con, long contactoId)
	{
		Cursor cur = null;
		try
		{		
			BaseDeDatosUtilities db = new BaseDeDatosUtilities(con);
			cur = db.getAccionesPorContacto(contactoId);
		}
		catch (Exception e) 
        {
			Log.v(TAG, "Un error ocurrio intentando obtener el historial.");
        }

		return cur;
	}
	
	public static Cursor obtenerTweeterUser(Context con, long contactoId)
	{
		Cursor cur = null;
		try
		{		
			BaseDeDatosUtilities db = new BaseDeDatosUtilities(con);
			cur = db.getNombreUsuarioTweeter(contactoId);
		}
		catch (Exception e) 
        {
			Log.v(TAG, "Un error ocurrio intentando obtener el nombre de usuario de Tweeter.");
        }

		return cur;
	}
	
	public static void registrarTwitterUserName(Context con, long contactoId , String userName)
	{
		try
		{		
			BaseDeDatosUtilities db = new BaseDeDatosUtilities(con);
			db.registrarTwitterUserName(String.valueOf(contactoId), userName);
		}
		catch (Exception e) 
        {
			Log.v(TAG, "Un error ocurrio intentando guardar el nombre de usuario de Twitter.");
        }
	}
	
	public static Cursor getMensajesWebsRecibidos(Context con, NombreAccion tipoAccion, String ordenWebUser, String ordenFecha)
	{
		Cursor cur = null;
		try
		{		
			BaseDeDatosUtilities db = new BaseDeDatosUtilities(con);
			cur = db.getMensajesWebsRecibidos(tipoAccion.getValue(), ordenWebUser, ordenFecha);			
		}
		catch (Exception e) 
        {
			Log.v(TAG, "Un error ocurrio intentando obtener los mensajes webs recibidos.");
        }
		return cur;
	}
	
	public static Cursor traerUltimoMensajeGuardado(Context con)
	{
		Cursor cur = null;
		try
		{		
			BaseDeDatosUtilities db = new BaseDeDatosUtilities(con);
			cur = db.getUltimoMensajeGuardado();			
		}
		catch (Exception e) 
        {
			Log.v(TAG, "Un error ocurrio intentando obtener los mensajes webs recibidos.");
        }
		return cur;
	}
}
